#ifndef __INC_GATES
#define __INC_GATES

#include "bit_def.h"

/*
 * Bit and(Bit a, Bit b);
 * Performs a boolean AND operation and returns the result.
 * a: the first operand
 * b: the second operand
 */
Bit and(Bit a, Bit b);

/*
 * Bit not(Bit a);
 * Performs a boolean NOT operation and returns the result.
 * a: the operand
 */
Bit not(Bit a);

/*
 * Bit or(Bit a, Bit b);
 * Performs a boolean OR operation and returns the result.
 * a: the first operand
 * b: the second operand
 */
Bit or(Bit a, Bit b);

/*
 * Bit xor(Bit a, Bit b);
 * Performs a boolean XOR operation and returns the result.
 * a: the first operand
 * b: the second operand
 */
Bit xor(Bit a, Bit b);

#endif
